package com.bnz.proxy.stat;

import com.bnz.proxy.UserDao;

/**
 * 静态代理（代理UserDaoImpl，要实现别代理的同样的接口）
 * 方法还是代理对象完成，代理是对方法的调用
 */

public class UserDaoStaticImpl implements UserDao {

    // 引入UserDao
    private UserDao userDao;
    public UserDaoStaticImpl(UserDao userDao){ // 构造方法
        this.userDao = userDao;
    }

    @Override
    public void add() {
        check(); // 添加方法之前，调用安全检查
        userDao.add();
    }

    @Override
    public void delete() {
        userDao.delete();
    }

    @Override
    public void update() {
        userDao.update();
    }

    @Override
    public void query() {
        userDao.query();
    }

    // 在方法调用前，启动检查
    private void check(){
        System.out.println("安全检查");
    }
}
